#!/usr/bin/env bash
set -euo pipefail

# 配置变量（需根据实际仓库修改）
GITEE_REMOTE="${GITEE_REMOTE:-git@gitee.com:Tempest121/water-world.git}"
GIT_BRANCH="${GIT_BRANCH:-master}"
SITE_DIR="${SITE_DIR:-website}"
# 可选：设置用户名和令牌，用于非交互式HTTPS推送
GITEE_USERNAME="${GITEE_USERNAME:-}"
GITEE_TOKEN="${GITEE_TOKEN:-}"

# 如果提供了用户名和令牌，则使用HTTPS带凭证的远程地址
if [[ -n "$GITEE_USERNAME" && -n "$GITEE_TOKEN" ]]; then
  GITEE_REMOTE="https://$GITEE_USERNAME:$GITEE_TOKEN@gitee.com/Tempest121/water-world.git"
fi

# 检查站点目录
if [[ ! -d "$SITE_DIR" ]]; then
  echo "[ERROR] 站点目录不存在: $SITE_DIR"
  exit 1
fi

# 初始化或更新仓库
if [[ ! -d .git ]]; then
  echo "[INFO] 初始化 git 仓库"
  git init
  git add .
  git commit -m "feat: initial import"
else
  echo "[INFO] 更新现有仓库"
  git add .
  git commit -m "chore: update site contents" || true
fi

# 设置远程地址
if ! git remote | grep -q origin; then
  git remote add origin "$GITEE_REMOTE"
else
  git remote set-url origin "$GITEE_REMOTE"
fi

# 推送到远程
echo "[INFO] 推送到 Gitee: $GITEE_REMOTE ($GIT_BRANCH)"
git branch -M "$GIT_BRANCH"

# 预先信任 Gitee SSH 主机指纹（仅当使用SSH远程时）
if [[ "$GITEE_REMOTE" == git@gitee.com:* ]]; then
  mkdir -p ~/.ssh
  touch ~/.ssh/known_hosts
  if ! ssh-keygen -F gitee.com >/dev/null; then
    echo "[INFO] 添加 gitee.com 到 known_hosts"
    ssh-keyscan -H gitee.com >> ~/.ssh/known_hosts 2>/dev/null || true
  fi
fi

# 推送
git push -u origin "$GIT_BRANCH"

cat <<'EOF'
[NEXT]
1) 打开 Gitee 仓库 → Pages 服务
2) 源分支选择为当前分支（默认 master 或 main）
3) 发布目录选择为 website
4) 构建方式选择“静态”
5) 点击发布，等待生效
EOF